package com.own.component.common.util;

import java.util.Random;

/**
 * RandomUtil
 *
 * @author chenxueli
 * @date 2024-03-14 13:32:00
 */
public class RandomUtil {

    /**
     * 默认模板
     */
    private static final String DEFAULT_TEMPLATE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";

    /**
     * 随机工具
     */
    private static final Random RANDOM_UTIL = new Random(System.currentTimeMillis());

    /**
     * 随机字符串
     *
     * @param n 字符个数
     * @return 内容
     */
    public static String getRandomString(int n) {
        return getRandomString(n, DEFAULT_TEMPLATE);
    }

    /**
     * 随机字符串
     *
     * @param n        字符个数
     * @param template 字符来源
     * @return 内容
     */
    public static String getRandomString(int n, String template) {
        return getRandomString(n, template, template.length());
    }


    /**
     * 随机字符串
     *
     * @param n        字符个数
     * @param template 字符来源
     * @param size     模板的长度
     * @return 内容
     */
    private static String getRandomString(int n, String template, int size) {
        var builder = new StringBuilder();
        for (var i = 0; i < n; i++) {
            var index = RANDOM_UTIL.nextInt(size);
            builder.append(template.charAt(index));
        }
        return builder.toString();
    }

}
